﻿using System;

namespace Eassets.Layered.Domain.Asset
{
    [Serializable]
   public  class AssetRequisitionDetail
    {
        #region Fields

        /// <summary>
        /// The Asset Requisition Id of the AssetRequisitionDetail.
        /// </summary>
        private long assetRequisitionId;
        /// <summary>
        /// The Transaction Id of the AssetRequisitionDetail.
        /// </summary>
        private long transactionId;
        /// <summary>
        /// The Requesting Organization Level Id of the AssetRequisitionDetail.
        /// </summary>
        private long requestingOrganizationLevelId;
        /// <summary>
        /// The Issuing Organization Level Id of the AssetRequisitionDetail.
        /// </summary>
        private long issuingOrganizationLevelId;
        /// <summary>
        /// The Requesting Emp Id of the AssetRequisitionDetail.
        /// </summary>
        private long requestingEmpId;
        /// <summary>
        /// The Asset Id of the AssetRequisitionDetail.
        /// </summary>
        private long assetId;
        /// <summary>
        /// The Quantity of the AssetRequisitionDetail.
        /// </summary>
        private int quantity;
        /// <summary>
        /// The Status of the AssetRequisitionDetail.
        /// </summary>
        private string status = string.Empty;
        /// <summary>
        /// The Unit Of Measure of the AssetRequisitionDetail.
        /// </summary>
        private string unitOfMeasure = string.Empty;
        /// <summary>
        /// The Transaction Date of the AssetRequisitionDetail.
        /// </summary>
        private DateTime transactionDate;

        /// <summary>
        /// Asset object from Asset
        /// </summary>
        private Assets assets;

        private Transaction transaction;

        #endregion

        #region Properties


        /// <summary>
        /// Gets or sets the Asset Requisition Id of the AssetRequisitionDetail.
        /// </summary>
        /// <value>
        /// The Asset Requisition Id of the AssetRequisitionDetail.
        /// </value>
        public long AssetRequisitionId
        {
            get
            {
                return this.assetRequisitionId;
            }
            set
            {
                this.assetRequisitionId = value;
            }
        }

        /// <summary>
        /// Gets or sets the Transaction Id of the AssetRequisitionDetail.
        /// </summary>
        /// <value>
        /// The Transaction Id of the AssetRequisitionDetail.
        /// </value>
        public long TransactionId
        {
            get
            {
                return this.transactionId;
            }
            set
            {
                this.transactionId = value;
            }
        }

        /// <summary>
        /// Gets or sets the Requesting Organization Level Id of the AssetRequisitionDetail.
        /// </summary>
        /// <value>
        /// The Requesting Organization Level Id of the AssetRequisitionDetail.
        /// </value>
        public long RequestingOrganizationLevelId
        {
            get
            {
                return this.requestingOrganizationLevelId;
            }
            set
            {
                this.requestingOrganizationLevelId = value;
            }
        }

        /// <summary>
        /// Gets or sets the Issuing Organization Level Id of the AssetRequisitionDetail.
        /// </summary>
        /// <value>
        /// The Issuing Organization Level Id of the AssetRequisitionDetail.
        /// </value>
        public long IssuingOrganizationLevelId
        {
            get
            {
                return this.issuingOrganizationLevelId;
            }
            set
            {
                this.issuingOrganizationLevelId = value;
            }
        }

        /// <summary>
        /// Gets or sets the Requesting Emp Id of the AssetRequisitionDetail.
        /// </summary>
        /// <value>
        /// The Requesting Emp Id of the AssetRequisitionDetail.
        /// </value>
        public long RequestingEmpId
        {
            get
            {
                return this.requestingEmpId;
            }
            set
            {
                this.requestingEmpId = value;
            }
        }

        /// <summary>
        /// Gets or sets the Asset Id of the AssetRequisitionDetail.
        /// </summary>
        /// <value>
        /// The Asset Id of the AssetRequisitionDetail.
        /// </value>
        public long AssetId
        {
            get
            {
                return this.assetId;
            }
            set
            {
                this.assetId = value;
            }
        }

        /// <summary>
        /// Gets or sets the Quantity of the AssetRequisitionDetail.
        /// </summary>
        /// <value>
        /// The Quantity of the AssetRequisitionDetail.
        /// </value>
        public int Quantity
        {
            get
            {
                return this.quantity;
            }
            set
            {
                this.quantity = value;
            }
        }

        /// <summary>
        /// Gets or sets the Status of the AssetRequisitionDetail.
        /// </summary>
        /// <value>
        /// The Status of the AssetRequisitionDetail.
        /// </value>
        public string Status
        {
            get
            {
                return this.status;
            }
            set
            {
                this.status = value;
            }
        }

        /// <summary>
        /// Gets or sets the Unit Of Measure of the AssetRequisitionDetail.
        /// </summary>
        /// <value>
        /// The Unit Of Measure of the AssetRequisitionDetail.
        /// </value>
        public string UnitOfMeasure
        {
            get
            {
                return this.unitOfMeasure;
            }
            set
            {
                this.unitOfMeasure = value;
            }
        }

        /// <summary>
        /// Gets or sets the Transaction Date of the AssetRequisitionDetail.
        /// </summary>
        /// <value>
        /// The Transaction Date of the AssetRequisitionDetail.
        /// </value>
        public DateTime TransactionDate
        {
            get
            {
                return this.transactionDate;
            }
            set
            {
                this.transactionDate = value;
            }
        }

        #endregion

        public Assets Assets
        {
            get
            {
                return this.assets;
            }
            set
            {
                this.assets = value;
            }
        }

        public Transaction Transaction
        {
            get
            {
                return this.transaction;
            }
            set
            {
                this.transaction = value;
            }
        }
    }
}
